#pragma once
#include <list>
#include <set>
#include "IReading.h"
#include "ISensorReaderListener.h"


namespace Sensor {

	class IReadingInformation : public virtual ISensorReaderListener {
	public:
		virtual void update() = 0;
		virtual std::list<std::unique_ptr<IReading>> getReading(const int sensorId, const std::string readingType, const ITime& start, const ITime& end) const = 0;
		virtual double getReadingAverage(const int sensorId, const std::string readingType, const ITime& start, const ITime& end) const = 0;
		virtual std::set<std::string> getReadingTypes() const = 0;
		virtual std::set<int> getSensorIds(const ITime& start, const ITime& end) const = 0;
	};

}